package com.busi.controller.hotsearch;

import java.sql.Timestamp;

import org.apache.log4j.Logger;

import com.busi.model.Hotsearch;
import com.busi.util.DateUtil;
import com.busi.util.GsonUtils;
import com.busi.util.HttpUtils;
import com.busi.util.PropertyUtil;
import com.busi.util.StringUtil;
import com.google.gson.Gson;
import com.zcurd.controller.BaseController;

/**
 * ******************  类说明  *********************
 * class       :  HotsearchController
 * @author     :  hanwentao
 * @version    :  1.0  
 * description :  关键字管理
 * @see        :                        
 * ***********************************************
 */
public class HotsearchController extends BaseController {
	
	private static final Logger LOG = Logger.getLogger(HotsearchController.class);
	
	/** ********************************************
	 * method name   : listPage 
	 * description   : 关键字列表页面
	 * @return       : void
	 * @param        : 
	 * modified      : hanwentao ,  2017年6月12日  下午4:24:39
	 * @see          : 
	 * ********************************************/  
	public void listPage(){
		render("list.html");
	}
	/** ********************************************
	 * method name   : listData 
	 * description   : 关键字信息查询列表
	 * @return       : void
	 * @param        : 
	 * modified      : hanwentao ,  2017年6月12日  下午4:39:40
	 * @see          : 
	 * ********************************************/  
	public void listData(){
		LOG.info("#listData() 查询关键字列表");
		Hotsearch hotsearch = super.getBean(Hotsearch.class, "");
		Gson gson = new Gson();
		String body = gson.toJson(hotsearch);
		LOG.info("#listData()请求参数:"+body);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/hotsearch/pagelist";
		String[][] headers = {{"Content-Type", "application/json"}};
		String jsonString = HttpUtils.doPost(url, body, headers, 3, 5, "utf-8");
		LOG.debug("#listData() 关键字列表:"+jsonString);
		
		if (StringUtil.isBlank(jsonString)){
			renderJson();
		} else {
			renderJson(jsonString);
		}
		
	}
	/** ********************************************
	 * method name   : addPage 
	 * description   : 添加关键字信息页面
	 * @return       : void
	 * @param        : 
	 * modified      : hanwentao ,  2017年6月12日  下午4:25:12
	 * @see          : 
	 * ********************************************/  
	public void addPage(){
		render("add.html");
	}

	/** ********************************************
	 * method name   : add 
	 * description   : 添加关键字信息
	 * @return       : void
	 * @param        : 
	 * modified      : hanwentao ,  2017年6月12日  下午4:25:49
	 * @see          : 
	 * ********************************************/  
	public void add(){
		Timestamp currentTime = DateUtil.getSysDateTimestamp();
		Hotsearch hotsearch = getBean(Hotsearch.class, "hotsearch");
		hotsearch.setModuser((String)getSessionUser().get("user_name"));
		hotsearch.setModtime(currentTime);
		hotsearch.setIntime(currentTime);
		String body = gson.toJson(hotsearch);
		LOG.info("#add() 添加关键字请求报文:"+body);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/hotsearch/add";
		String[][] headers = {{"Content-Type", "application/json"}};
		String jsonString = HttpUtils.doPost(url, body, headers, 3, 5, "utf-8");
		LOG.info("#add() result===>"+jsonString);
		if ("exists".equals(jsonString)){
			renderFailed("关键字已存在！");
			return ;
		}
		if ("success".equals(jsonString)){
			renderSuccess();
			return;
		}
		renderFailed("关键字添加失败！");
	}
	/** ********************************************
	 * method name   : updatePage 
	 * description   : 关键字修改信息页面
	 * @return       : void
	 * @param        : 
	 * modified      : hanwentao ,  2017年6月12日  下午6:01:49
	 * @see          : 
	 * ********************************************/  
	public void updatePage(){
		String id = super.getPara("id");
		LOG.info("#updatePage()请求参数:"+id);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/hotsearch/"+id;
		String jsonString = HttpUtils.doGet(url, null, 3, 5, "utf-8");
		LOG.debug("#listData() 商户信息:"+jsonString);
		Gson gson = GsonUtils.buildGsonObject();
		Hotsearch hotsearch = gson.fromJson(jsonString, Hotsearch.class);
		setAttr("model", hotsearch);
		render("update.html");
	}
	
	/** ********************************************
	 * method name   : update 
	 * description   : 关键字信息更新
	 * @return       : void
	 * @param        : 
	 * modified      : hanwentao ,  2017年6月13日  上午10:03:34
	 * @see          : 
	 * ********************************************/  
	public void update(){
		Timestamp currentTime = DateUtil.getSysDateTimestamp();
		Hotsearch hotsearch = getBean(Hotsearch.class, "hotsearch");
		hotsearch.setModuser((String)getSessionUser().get("user_name"));
		hotsearch.setModtime(currentTime);
		String body = gson.toJson(hotsearch);
		LOG.info("#add() 增加关键字请求报文:"+body);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/hotsearch/modify";
		String[][] headers = {{"Content-Type", "application/json"}};
		String jsonString = HttpUtils.doPost(url, body, headers, 3, 5, "utf-8");
		LOG.info("#add() result===>"+jsonString);
		renderSuccess();
	}
	
	/** ********************************************
	 * method name   : listDataNoPage 
	 * description   : 关键字条件查询
	 * @return       : void
	 * @param        : 
	 * modified      : hanwentao ,  2017年6月13日  下午2:51:56
	 * @see          : 
	 * ********************************************/  
	public void listDataNoPage(){
		LOG.info("#listDataNoPage() 查询关键字列表");
		Hotsearch hotsearch = super.getBean(Hotsearch.class, "");
		Gson gson = new Gson();
		String body = gson.toJson(hotsearch);
		LOG.info("#listDataNoPage()请求参数:"+body);
		String domain = PropertyUtil.getStrValue("platform.domain", "");
		String url = domain+"/emall/admin/hotsearch/list";
		String[][] headers = {{"Content-Type", "application/json"}};
		String jsonString = HttpUtils.doPost(url, body, headers, 3, 5, "utf-8");
		LOG.debug("#listDataNoPage() 关键字列表:"+jsonString);
		renderJson(jsonString);
	}

}
